package com.cykj.admin.mapper;

import com.cykj.admin.vo.CompanyCheckVO;
import com.cykj.admin.vo.CompanyVO;
import com.cykj.admin.vo.IndustryVO;
import com.cykj.common.entity.CompanyCheckDO;
import com.cykj.common.entity.CompanyDO;
import com.cykj.common.entity.IndustryDO;
import com.cykj.common.entity.RegionDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @BelongsProject: smart_recruit_backend
 * @BelongsPackage: com.cykj.admin.mapper
 * @Author: 小小卢
 * @CreateTime: 2025-08-16 13:30
 * @Description: TODO
 */
@Mapper
public interface CompanyCheckMapper {
    /**
     * @Description: 查询未审核的公司
     * @Param: [companyCheckVO]
     * @return: java.util.List<com.cykj.common.entity.CompanyCheckDO>
     */
    List<CompanyCheckDO> selectCheckCompany(@Param("companyCheckVO") CompanyCheckVO companyCheckVO);

    /**
     * @Description: 审核公司
     * @Param: [companyCheckVO]
     * @return: java.lang.Integer
     */
    Integer checkCompany(@Param("companyVO") CompanyVO companyVO);

    /**
     * 插入公司资质审核信息
     * @param companyCheck 公司资质信息
     * @return 影响行数
     */
//    int insertCompanyCheck(CompanyCheckDO companyCheck);

    /**
     * @Description: 根据行业名获取行业ID
     * @Param: [industryName]
     * @return: com.cykj.common.entity.IndustryDO
     */
    IndustryDO selectIndustry(@Param("industryName") String industryName);

    /**
     * @Description: 插入行业
     * @Param: [industryName]
     * @return: java.lang.Integer
     */
    Integer insertIndustry(@Param("industryVO") IndustryVO industryVO);

    /**
     * @Description: 根据地区名称获取id
     * @Param: [regionName]
     * @return: com.cykj.common.entity.RegionDO
     */
    RegionDO getRegionId(@Param("regionName") String regionName);

    /**
     * @Description: 插入公司信息
     * @Param: [companyVO]
     * @return: java.lang.Integer
     */
    Integer insertCompany(@Param("companyVO") CompanyVO companyVO);

    /**
    * @Description: 审核通过后生成公司信息并更新插入人事表
    * @Param: [hrId, companyId]
    * @return: java.lang.Integer
    */
    Integer updateHrInfo(@Param("hrId") Integer hrId,
                         @Param("companyId") Integer companyId);

    /**
    * @Description: 确认公司是否存在
    * @Param: [enterpriseCode]
    * @return: com.cykj.common.entity.CompanyDO
    */
    CompanyDO checkCompanyExist(@Param("enterpriseCode") String enterpriseCode);

    /**
    * @Description: 将原来的人事主账号降级为子账号
    * @Param: [companyId]
    * @return: java.lang.Integer
    */
    Integer demoteHr(@Param("companyId")Integer companyId);
    /**
    * @Description: 将人事子账号升级为主账号
    * @Param: [hrId]
    * @return: java.lang.Integer
    */
    Integer upgradeHr(@Param("hrId") Integer hrId);
}
